//class Solution {
//public:
//    int findLongestChain(vector<vector<int>>& pairs) {
//        int n = pairs.size();
//        sort(pairs.begin(), pairs.end());
//        vector<int> dp(n, 1);
//        for (int i = 1; i < n; i++)
//        {
//            for (int j = 0; j < i; j++)
//            {
//                if (pairs[j][1] < pairs[i][0])
//                {
//                    dp[i] = max(dp[i], dp[j] + 1);
//                }
//            }
//        }
//        int ret = 0;
//        for (auto e : dp) ret = max(ret, e);
//        return
//    }
//};


//class Solution {
//public:
//    int longestSubsequence(vector<int>& arr, int difference) {
//        int n = arr.size();
//        unordered_map<int, int> hash;
//        hash[arr[0]] = 1;
//        int ret = 1;
//        for (int i = 1; i < n; i++)
//        {
//            hash[arr[i]] = hash[arr[i] - difference] + 1;
//            ret = max(ret, hash[arr[i]]);
//        }
//        return ret;
//    }
//};

